package com.pay.order.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@Data
public class PayOrder {
    @TableId(type = IdType.AUTO)
    private Integer id;
    /**
     * 订单号
     */
    private String code;
    /**
     * 汇款方式：0支付宝，1跨行，2信用卡，3银行转账',
     */
    private Integer payType;
    /**
     *'币种'
     */
    private Integer rateType;
    /**
     * 卡号：支付宝时为支付宝账号
     */
    private String bankNo;
    /**
     * 开户行
     */
    private String bankName;
    /**
     * '国家'
     */
    private String country;
    /**
     * swiftCode 银行码
     */
    private String swiftCode;
    /**
     * 付款人
     */
    private String payeer;

    /**
     * 付款人
     */
    private Integer payeeId;
    /**
     * 金额
     */
    private BigDecimal amount;
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createTime;
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date updateTime;
    /**
     * 订单状态：0待审核，1已通过，2 不通过
     */
    private Integer status;
    /**
     * 手续费
     */
    private Double rate;
    /**
     * 费率名称
     */
    private String rateName;
    /**
     * 汇款方式：0支付宝，1跨行，2信用卡，3银行转账',
     */
    @TableField(exist = false)
    private String payTypeStr;

    @TableField(exist = false)
    private String statusStr;

    public void setPayTypeStr(Integer payType){
        switch (payType){
            case 0:
                this.payTypeStr="支付宝";
                break;
            case 1:
                this.payTypeStr="跨行";
                break;
            case 2:
                this.payTypeStr="信用卡";
                break;
            case 3:
                this.payTypeStr="银行转账";
                break;
            default:
                this.payTypeStr="支付宝";
                break;
        }
    }

    public void setStatusStr(Integer status){
        switch (status){
            case 0:
                this.statusStr="待审核";
                break;
            case 1:
                this.statusStr="通过";
                break;
            case 2:
                this.statusStr="不通过";
                break;
            default:
                this.statusStr="待审核";
                break;
        }
    }

}
